package 容器方法测试;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.print.attribute.standard.RequestingUserName;

public class 容器封装
{
	public static void main(String[] args)
	{
		System.out.println("====");
		朝代类 朝代=new 朝代类("大唐","长安",182);
		System.out.println("=="+朝代);
		/*=添加皇上=*/
		皇上类 第一个皇帝 =new 皇上类();
		第一个皇帝.setName("李渊");
		第一个皇帝.setMiaoHao("唐高祖");
		第一个皇帝.setAge(57);
		第一个皇帝.setNianHao("你猜");
		System.out.println(朝代.add(第一个皇帝));
		朝代.selectAll();
		/*添加第二个皇帝*/
		皇上类 第二个皇帝 =new 皇上类();
		第二个皇帝.setName("李世民");
		第二个皇帝.setMiaoHao("唐太宗");
		第二个皇帝.setAge(60);
		第二个皇帝.setNianHao("猜不猜");
		System.out.println(朝代.add(第二个皇帝));
		/*查询出所有皇帝*/
		朝代.selectAll();
		/*更新皇帝*/
		第二个皇帝.setMiaoHao("这个更不知道");
		System.out.println("=="+朝代.update(第二个皇帝));
		朝代.selectAll();
	}
}
class 朝代类
{
	private String name;
	private String shoudu;
	private int age;
	private List<皇上类> ls = new ArrayList<皇上类>();
	public 朝代类()
	{	
	}
	public 朝代类(String name , String sh , int age)
	{
		this.name = name;
		shoudu = sh;
		this.age = age;
	}
	public String toString()
	{
		String s= "朝代="+this.name+"=首都="+this.shoudu + "=国祚="
				+this.age;
		return s;
	}
	/*皇上的个数*/
	public int size()
	{
		return ls.size(); 
	}
	/*添加皇上*/
	public boolean add(皇上类 皇上)
	{
		return this.ls.add(皇上);
	}
	/*查询皇上*/
	public void selectAll()
	{
		for (Iterator iterator = ls.iterator(); iterator.hasNext();)
		{
			皇上类 皇上类 = (皇上类) iterator.next();
			System.out.println("=="+皇上类);
		}
	}
	/*更新皇上*/
	public boolean update(皇上类 上)
	{
		/*通过迭代器移除皇上在添加*/
		for (Iterator iterator = ls.iterator(); iterator.hasNext();)
		{
			皇上类 皇上类 = (皇上类) iterator.next();
			if(上.getName().equalsIgnoreCase(皇上类.getName()))
			{
				iterator.remove();
				break;
			}
		}
		/*添加皇上*/
		this.ls.add(上);
		return false;
	}
	/*删除皇上*/
	public boolean delete(String key)
	{
		for (Iterator iterator = ls.iterator(); iterator.hasNext();)
		{
			皇上类 皇上类 = (皇上类) iterator.next();
			if(key.equalsIgnoreCase(皇上类.getName()))
			{
				iterator.remove();
				/*当名字一致移除之后程序直接返回*/
				return true;
			}
		}
		return false;
	}
}
class 皇上类
{
	private String name;
	private int age;
	private String miaoHao;
	private String nianHao;
	public String toString()
	{
		String s = "名字="+this.name+"=年龄="+this.age+"=庙号="+this.miaoHao+"=年号="+this.nianHao;
		return s ;
	}
	/*生成读写器*/
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public int getAge()
	{
		return age;
	}
	public void setAge(int age)
	{
		this.age = age;
	}
	public String getMiaoHao()
	{
		return miaoHao;
	}
	public void setMiaoHao(String miaoHao)
	{
		this.miaoHao = miaoHao;
	}
	public String getNianHao()
	{
		return nianHao;
	}
	public void setNianHao(String nianHao)
	{
		this.nianHao = nianHao;
	}
}